The present invention is directed to an improvement in computing systems and in particular to patterns for modeling interactions between computer systems or components.
There are many different computer systems known as application systems. Examples include database management or transaction processing systems. Such systems are sometimes referred to as xe2x80x9cbackendxe2x80x9d systems because certain users do not access the systems directly, but rather through a particular xe2x80x9cfrontendxe2x80x9d or user interface, which in turn communicates with the application system to carry out the function requested by the user. Backend systems typically provide access to the functions of the backend system by a communication interface which allows remote and distributed use of the backend system.
Since backend systems have been developed by different companies or groups, they provide different access methods, for example, different sets of APIs to use their services. This causes a serious problem for the application developer who is forced to learn to use different APIs to support various backend systems or even various communications methods with the same system Moreover, it is very hard to provide general tooling or any type of automation of such access, for example code generation requires customized tools that are not reusable and cannot support multiple targets. As well, such tools require specific runtime support that also cannot be reused. This problem is especially annoying since abstraction of the access to the functionality of various backend systems is very similar.
It is therefore desirable to have a standard set of high level interfaces, to which such systems would adhere to permit the modeling of these interactions between computer systems or components in a generic pattern.
According to one aspect of the present invention, there is provided an improved computer system and method.
According to another aspect of the present invention, there is provided an improved computer system and method for interacting or communicating between a client and a component in a backend system.
According to another aspect of the present invention, there is provided a computer system comprising a command for interacting between a client and a component in a backend system, the command comprising an input object, for transformation by the backend system, one or more output objects, representing the input object after transformation by the backend system, a connection specification, for identification of the backend system with which the client is to interact, an interaction specification, for identification of the component in the backend system with which the client is to interact, and a communication object, for carrying out a connection between the client and the component of the backend system wherein the input object is supplied to the component of the backend system in accordance with the interaction specification and the connection specification and wherein the one or more output objects receive the transformed input object after processing by the component of the backend system, wherein the command is driven by an execute method and wherein the command signals a successful event on no exception being encountered by the component of the backend system in processing the input object, and wherein the command signals an unsuccessful event on an exception being encountered by the component of the backend system in processing the input object.
According to another aspect of the present invention, there is provided the above computer system in which the command is an object oriented class.
According to another aspect of the present invention, there is provided the above computer system in which the input object and the one or more output objects are each a record bean in a defined Java framework.
According to another aspect of the present invention, there is provided a computer system comprising a navigator for forming an interaction flow with a backend system, the navigator comprising a set selectively comprising subcommands and subnavigators, wherein the execute method for each of the subcommands and subnavigators in the set is triggered by a one of an internal event in the navigator derived from the execute method for the navigator, or a successful event from another selected one of the set of subcommands and subnavigators whereby the successive execution of the subcommands and subnavigators in the set defines an interaction flow with the backend system, wherein the navigator is driven by an execute method and wherein the navigator signals a successful event on no unsuccessful event being signalled by the successive execution of the subcommands and subnavigators in the set, and wherein the navigator signals an unsuccessful event on an unsuccessful event being signalled by any one of the successive executions of the subcommands and subnavigators in the set, and wherein subcommands have characteristics identical to commands, and wherein subnavigators have characteristics identical to navigators.
According to another aspect of the present invention, there is provided an object oriented computer environment comprising a command class for interacting between a client and components in backend systems, the command class comprising an input object, for transformation by a selected one of the backend systems, one or more output objects, representing the input object after transformation by the selected one of the backend systems, a connection specification, for identification of the selected one of the backend systems with which the client is to interact, an interaction specification, for identification of a selected one of the components in the selected one of the backend systems with which the client is to interact, and a communication object, for carrying out a connection between the client and the selected one of the components of the selected one of the backend systems wherein the input object is supplied to the selected one of the components of the selected one of the backend systems in accordance with the interaction specification and the connection specification and wherein the one or more output objects receive the transformed input object after processing by the selected one of the components of the selected ones of the backend systems, wherein the instance of the command signals a successful event on no exception being encountered by the selected one of the components of the selected one of the backend systems in processing the input object, and wherein the command signals an unsuccessful event on an exception being encountered by the selected one of the components of the selected one of the backend systems in processing the input object.
According to another aspect of the present invention, there is provided the above object oriented computer environment in which the environment is the Java programming language environment and in which the input object and the one or more output objects are each a record bean in a defined Jave framework, and in which navigators, as described above are defined as a class.
Advantages of the present invention include the provision of a solution to the problem by providing a generic runtime that supports interactions with different backend systems using different communications.
Media encoded with program code to effect the above-described systems or processes is also provided in the invention.